Bank statement reconciliation is a process of reconciling or matching lines of a bank statement with actual transactions or customer's internal records. The customer, in this situation, may be an enterprise, corporation, business, family, individual, or other entity.
In business enterprises, a customer may deploy financial software applications in such a way that data is distributed across multiple database instances. This can provide flexibility in managing the applications on different parts of the enterprise. An enterprise may handle data associated with a first software application pertaining to payroll, for example, and also handle similar data for another software application pertaining to auto-reconciliation, for example.
One solution for allowing accessibility to financial information stored in two different databases is to store transaction data in one database, such as the one associated with the payroll application, for example, and allowing the reconciliation software to access the transaction data. However, this would result in poor performance since auto-reconciliation functionality is computationally intensive and ideally requires the transaction data to be local.
An alternative solution that does not suffer from poor performance is to replicate payroll transaction data from the payroll database to the reconciliation database at regular intervals. However, the technique of maintaining multiple sources of data suffers from the problem of data conflicts, because users associated with the two different databases could potentially work on two copies of the same data at substantially the same time. A conflict might not be recognized until later when synchronization of data is attempted. Of course, this problem would not occur if there were only one set of data transactions.
Therefore, there appears to be contradictory objectives in this respect. One the one hand, it is desirable to allow applications to operate on information stored locally for the sake of processing speed. On the other hand, when data is replicated on the multiple databases, it can be difficult to avoid the issue of data conflict.